package com.sz.biz.logistics.core.service;

import com.sz.biz.logistics.core.entity.ProductRegionRel;
import com.sz.biz.logistics.core.dto.ProductRegionCustomerDto;

import java.util.List;

/**
 * Function:  ProductRegionRelService <br>
 * Author: penghui.zheng <br>
 * Date: 2017-05-9 14:58:00
 */

public interface ProductRegionRelService {
    /**
     * 新增
     *
     * @param entry 新增的实体
     * @return 新增是否成功
     */
    String save(ProductRegionRel entry);

    /**
     * 异步判断产品范围编码是否存在
     *
     * @param id
     * @param code
     */
    void checkProductRegionCode(Integer id, String code);

    /**
     * 修改产品范围
     *
     * @param entry
     * @return
     */
    String update(ProductRegionRel entry);

    /**
     * 根据id删除产品范围
     *
     * @param id
     */
    void batchDeleteById(List<Integer> id);

    /**
     * 批量新增
     *
     * @param list
     */
    void batchsave(List<ProductRegionRel> list);

    /**
     * 根据quotationId查询单个实体
     *
     * @param productId
     * @return 查询出来的实体对象
     */
    List<ProductRegionRel> findByProductId(int productId);

    /**
     * 产品范围
     * @param productId
     * @return
     */
    List<ProductRegionCustomerDto> findRegionInfoByProductId(int productId);

    /**
     * 根据主键Id查询单个实体
     *
     * @param id 主键id
     * @return 查询出来的实体对象
     */
    ProductRegionRel findById(Integer id);

    /**
     * 根据productId删除
     *
     * @param productId productId
     */
    void deleteByProductId(Integer productId);
    /**
     * 获取产品范围关系
     *
     * @param productId
     * @param type
     * @return
     */
    ProductRegionRel getProductRegion(Integer productId, String type);

}
